ghc-justdoit: A magic typeclass that just does it

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.


This plugin allows you to write

{-# OPTIONS_GHC -fplugin GHC.JustDoIt.Plugin #-}
module Test where

import GHC.JustDoIt

foo :: ((a -> r) -> r) -> (a -> ((b -> r) -> r)) -> ((b -> r) -> r)
foo = (…)

without having to write the actual implementation of foo.

See examples/Demo.hs for a few examples of what this plugin can do for you.

[Skip to ReadMe]


Dependenciesbase (>=4.11 && <4.14), ghc (>=8.5), hashable [details]
Copyright2018 Joachim Breitner
AuthorJoachim Breitner
Home page
Source repositoryhead: git clone git://
UploadedThu Oct 11 15:03:18 UTC 2018 by JoachimBreitner



Maintainers' corner

For package maintainers and hackage trustees

Readme for ghc-justdoit-

[back to package description]

ghc-justdoit: a GHC plugin to write the code for you

This is a prototype of a code synthesis plugin for GHC, which uses LJT proof search to instantiate a type.


{-# OPTIONS_GHC -fplugin=GHC.JustDoIt.Plugin #-}
module Test where

import GHC.JustDoIt

foo :: ((a -> r) -> r) -> (a -> ((b -> r) -> r)) -> ((b -> r) -> r)
foo = (…)

Missing bits

If someone wants to pick it up from here, that’d be great!

Related work


Please reports bugs and missing features at the GitHub bugtracker. This is also where you can find the source code.

ghc-justdoit was written by Joachim Breitner and is licensed under a permissive MIT license.