codesnippets:parametrictypeforanintermediatevaluewhencombiningfunctions
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| codesnippets:parametrictypeforanintermediatevaluewhencombiningfunctions [2021/04/24 22:35] – f2b216 | codesnippets:parametrictypeforanintermediatevaluewhencombiningfunctions [2025/10/08 00:48] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Parametric type for an intermediate value when combining functions ====== | ====== Parametric type for an intermediate value when combining functions ====== | ||
| - | ~~DISCUSSION~~ | ||
| * example with the folling problem(s): | * example with the folling problem(s): | ||
| Line 32: | Line 31: | ||
| render (Contains (MyData n)) = Oct.toOctets n | render (Contains (MyData n)) = Oct.toOctets n | ||
| render (Error _) = [] | render (Error _) = [] | ||
| + | </ | ||
| + | * compiles, with error:< | ||
| + | app\Main.hs: | ||
| + | * Could not deduce (Builder g0) | ||
| + | from the context: Builder g | ||
| + | bound by the type signature for: | ||
| + | | ||
| + | at app\Main.hs: | ||
| + | The type variable `g0' is ambiguous | ||
| + | * In the ambiguity check for `buildNRender' | ||
| + | To defer the ambiguity check to use sites, enable AllowAmbiguousTypes | ||
| + | When checking the class method: | ||
| + | buildNRender :: forall g. Builder g => String -> [W.Word8] | ||
| + | In the class declaration for `Builder' | ||
| + | | | ||
| + | 19 | | ||
| + | | ||
| </ | </ | ||
| * example that solves the problem with extensions | * example that solves the problem with extensions | ||
| Line 137: | Line 153: | ||
| </ | </ | ||
| + | |||
| + | ===== ✎ ===== | ||
| + | ~~DISCUSSION~~ | ||
codesnippets/parametrictypeforanintermediatevaluewhencombiningfunctions.1619296546.txt.gz · Last modified: (external edit)
