Nice work, but I had some surprises while experimenting with the plugin interactively (with GHC 8.2.1). Here's one:
$ ghci -fplugin=Coxswain -XOverloadedLabels -XDataKinds -XTypeFamilies -XTypeOperators -XFlexibleContexts -fconstraint-solver-iterations=1000
GHCi, version 8.2.1: http://www.haskell.org/ghc/ :? for help
Prelude> :m + Data.Sculls.Symbol
Prelude Data.Sculls.Symbol> mkR
<interactive>:1:1: error:
solveSimpleWanteds: too many iterations (limit = 1000)
Set limit with -fconstraint-solver-iterations=n; n=0 for no limit
Simples = {[WD] $dShow_a5oB {0}:: Show a0 (CNonCanonical),
[WD] hole{a5oD} {0}:: R f0 Row0 ~ a0 (CNonCanonical)}
WC = WC {wc_simple =
[WD] $dShort_a74z {0}:: Short (0 GHC.TypeNats.- 1) (CNonCanonical)
[WD] $dCoxswainWorking_a627 {0}:: Coxswain.CoxswainWorking
0 (CDictCan)}
Nice work, but I had some surprises while experimenting with the plugin interactively (with GHC 8.2.1). Here's one: